C语言中,事件对象(CreateEvent)、互斥对象(CreateMutex)、关键代码段(InitializeCriticalSection)

您所在的位置:网站首页 内核对象 互斥量怎么算 C语言中,事件对象(CreateEvent)、互斥对象(CreateMutex)、关键代码段(InitializeCriticalSection)

C语言中,事件对象(CreateEvent)、互斥对象(CreateMutex)、关键代码段(InitializeCriticalSection)

2024-06-15 04:00| 来源: 网络整理| 查看: 265

 事件对象(CreateEvent)、互斥对象(CreateMutex)、关键代码段(InitializeCriticalSection)都是保证数据安全的一些措施。

1、互斥对象和事件对象属于内核对象,利用内核对象进行线程同步,速度较慢,但可以实现在多个进程中各线程间进行同步。

2、关键代码段式工作在用户方式下,同步速度较快,但在使用关键代码段时,很容易进入死锁状态,因为在进入关键代码时无法设定超时值。

     MFC下InitializeCriticalSection()和DeleteCriticalSection()可以放在类的构造函数和析构函数中

 

CreateEvent

代码实例1.1 Event

#include "stdafx.h"   #include    #include       using namespace std;      DWORD WINAPI thread1fun(LPVOID);   DWORD WINAPI thread2fun(LPVOID);      int tickets=20;   HANDLE hEvent;      int main()   {       HANDLE hthread1,hthread2;       the third parameter: 指定事件对象的初始状态。       /// 如果为TRUE,初始状态为有信号状态; FALSE:为无信号状态。       /// the second parameter: TRUE:人工重置,否则自动重置无信号状态       hEvent=CreateEvent(NULL,FALSE,FALSE,_T("tickets"));         if(hEvent)       {           if(ERROR_ALREADY_EXISTS==GetLastError()) //当前有实例在           {               cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3